package ar.com.aterrizar.filtrosBusqueda;

import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;


import ar.com.aterrizar.asientos.Asiento;
import ar.com.aterrizar.entidades.TipoDeClaseAsiento;

public class FiltroPorClase extends FiltroOpcional {
	private List<TipoDeClaseAsiento> clases= new ArrayList<TipoDeClaseAsiento>();
	
	public FiltroPorClase (Filtro filtro){
		this.filtroDecorado=filtro;
	}
	public FiltroPorClase (Filtro filtro, TipoDeClaseAsiento clase){
		this.filtroDecorado=filtro;
		this.clases.add(clase);
	}
	public void addClase(TipoDeClaseAsiento clase){
		clases.add(clase);
	}

	public Collection<Asiento> filtrar(Collection<Asiento> new_asientos){
		Collection<Asiento> asientos = this.filtroDecorado.filtrar(new_asientos);
		Collection<Asiento> asientos_filtrados = new LinkedList<Asiento>();
		for(Asiento asiento: asientos){
			int j=0; 
            while (j< this.clases.size()){
            	if(asiento.getClase()==this.clases.get(j)){
	    			asientos_filtrados.add(asiento);
	    			j=this.clases.size();
	    		}
                j++;
            }
		}
		return asientos_filtrados;
	}
}
